package com.yonyou.sto.modules.ims.service;

import com.yonyou.sto.common.api.CommonResult;
import com.yonyou.sto.modules.ims.dto.CallbackInvoiceParam;
import com.yonyou.sto.modules.ims.dto.OpenReturn;
import org.springframework.transaction.annotation.Transactional;

import java.security.Principal;
import java.util.List;
import java.util.Map;

/**
 * @author ：Aegon Targaryen
 * @version ：1.0-SNAPSHOT
 * @date ：Created in 2020/9/25 14:10
 * @description ：
 * @modifiedBy ：
 */
public interface OpenBillService {

    /**
     * 开票申请
     * @param
     * @param billType
     * @return
     */
    CommonResult callInvoiceApply(Principal principal, List<String> billIds, List<String> billItemIds, Integer billType, Integer contain);


    /**
     * 调用退回开票接口
     * @param
     * @param
     * @return
     */
    CommonResult callInvoiceReturnApply(Principal principal, String billId);

    /**
     * 开蓝票查询接口
     * @param fpqqlsh
     * @return
     */
    CommonResult queryInvoiceApply(String fpqqlsh);

    /**
     * 开蓝票回调接口
     * @param callbackInvoiceParam
     * @return
     */
    Map<String, String> callbackInvoiceApply(CallbackInvoiceParam callbackInvoiceParam);

    /**
     * 开红票回调接口
     * @param callbackInvoiceParam
     * @return
     */
    Map<String, String> callredInvoiceApply(CallbackInvoiceParam callbackInvoiceParam);
    /**
     *开红票回调接口
     * @param callbackInvoiceParam
     * @return
     */
    Map<String, String> openRedBillCallback(CallbackInvoiceParam callbackInvoiceParam);

    /**
     *开红票回调接口
     * @param openReturn
     * @return
     */
    Map<String, String> openReturn(OpenReturn openReturn);
    /**
     * 开红票
     * @param principal
     * @param ids
     * @return
     */
    CommonResult openRedInvoice(Principal principal,List<String> ids);
    /**
     * 开蓝票
     * @param principal
     * @param ids
     * @return
     */
    CommonResult openBlueInvoice(Principal principal,List<String> ids);


    String as();
}
